/*
 * @lc app=leetcode.cn id=162 lang=cpp
 *
 * [162] 寻找峰值
 */

// @lc code=start
class Solution
{
 public:
  // 这个题就是那5%
  // 然后题目分析是：每次缩小答案所在区间的一半
  // 当区间长度为1时，找到了答案
  // 不会出现mid在边界的情况，因为是模板1下取整，当mid=边界时，l=r此时已经跳出循环了
  int findPeakElement(vector<int>& nums)
  {
    int l = 0, r = nums.size() - 1;
    while (l < r)
    {
      int mid = l + r >> 1;
      if (nums[mid] > nums[mid + 1])
        r = mid;
      else
        l = mid + 1;
    }
    return r;
  }
};
// @lc code=end
